package com.naton.mydemo.bean;

import androidx.annotation.NonNull;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;
import androidx.room.TypeConverters;


import com.naton.mydemo.model.dao.converter.StringConverter;

import java.util.List;

/**
 * 用户表
 * Room使用类名作为数据库表名。如果希望表具有不同的名称，请设置@Entity注解的tableName属性
 * 需要索引数据库中的某些列以加快查询速度。若要向实体添加索引，在@Entity注释中添加indices属性
 */
@Entity
@TypeConverters(StringConverter.class)
public class User {
        /**
         * 如果是字符串做主键  记得加 @NonNull  不然会报错
         * 每个实体必须定义至少1个字段作为主键。即使只有1个字段，仍然需要用@PrimaryKey注解字段。
         * 此外，如果您想Room自动分配IDs给实体，则可以设置@PrimaryKey的autoGenerate属性。
         * 如果实体具有复合主键，则可以使用@Entity注解的primaryKeys属性
         * @Entity(primaryKeys = {"firstName", "lastName"})
         *
         */
        @NonNull
        @PrimaryKey  //
        public String telephone;
        /**
         * Room使用字段名称作为数据库中的列名。如果希望列具有不同的名称，请将@ColumnInfo注解添加到字段中
         */
        @ColumnInfo(name = "haha")
        public Integer approveStatus;
        @Ignore
        public String aliasName;
        public String unionid;
        public Integer role;
        public List<String> otherProductLine;
        public String openid;
        public String companyName;
        public String remark;
        public String idcPicUrls;
        public String opinion;
        public String access_token;
        public Integer companyId;
        public String approveKey;
        public String companyFullName;
        public String district;
        public String pdtLineNum;
        public List<String> authMenu;
        public Integer expires_in;

        @Override
        public String toString() {
                return "User{" +
                        "telephone='" + telephone + '\'' +
                        ", approveStatus=" + approveStatus +
                        ", aliasName='" + aliasName + '\'' +
                        ", unionid='" + unionid + '\'' +
                        ", role=" + role +
                        ", otherProductLine=" + otherProductLine +
                        ", openid='" + openid + '\'' +
                        ", companyName='" + companyName + '\'' +
                        ", remark='" + remark + '\'' +
                        ", idcPicUrls='" + idcPicUrls + '\'' +
                        ", opinion='" + opinion + '\'' +
                        ", access_token='" + access_token + '\'' +
                        ", companyId=" + companyId +
                        ", approveKey='" + approveKey + '\'' +
                        ", companyFullName='" + companyFullName + '\'' +
                        ", district='" + district + '\'' +
                        ", pdtLineNum='" + pdtLineNum + '\'' +
                        ", authMenu=" + authMenu +
                        ", expires_in=" + expires_in +
                        '}';
        }
}
